signature TYPES_STRUCTS2 =
sig
  include ATOMS
end

signature TYPES2 =
sig
  include TYPES_STRUCTS2
  
  datatype t
    = Ns
    | Voidt
    | Intt
    | Boolt
    | Structt of {id : Id.t, offSet : Intl.t, ty : t} list * (unit ref)
    | Arrayt of Intl.t * t
    | Pointt of t
    | Name of Id.t
    | Product of t list
    | Funct of t * t
    
  val equals : t * t -> bool
  val isPtTy : t -> bool
  val size : t -> int
  val toString : t -> string
end

  
 